<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

include_once 'principal.php';

class Login extends Principal {

    public function __construct() {
        parent::__construct();
        // Carregando o template.
        $this->layout = 'login';
        // Carregando o css.
        $this->css = array('reset', 'autenticacao');
    }

    /**
     * Carrega a view para login
     */
    public function index() {
        $this->title = 'Autenticação! || ' . $this->title;
        $this->load->view('autenticacao');
    }

    /**
     * Realiza a autenticação do usuário.
     */
    public function autenticacao() {
        try {
            $this->load->library('form_validation');
            $this->form_validation->set_rules("usuario", "Usuário", "trim|htmlentities|required|xss_clean");
            $this->form_validation->set_rules("senha", "Senha", "trim|htmlentities|max_length[8]|required|xss_clean");

            if ($this->form_validation->run() == FALSE) {
                throw new ExceptionValidacao(validation_errors());
            } else {

                $this->load->model('ControleAcesso');

                if ($this->ControleAcesso->estaLogado()) {
                    $this->ControleAcesso->deslogaUsuario();
                }

                $this->ControleAcesso->autenticaUsuario();
                redirect("");
            }
        } catch (Exception $erro) {
            Mensagem::setExcecao($erro);
            $this->index();
        }
    }

    public function recuperaSenha() {
        $this->title = 'Recuperação de senha! || ' . $this->title;
        $this->load->view('recupera_senha');
    }

}
